/*****************************************************************************
 *   Copyright 2005 Tim A Wang
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 ****************************************************************************/
package com.jb.web.renderer;

import com.jb.web.bean.Image;
import com.jb.web.context.WebContext;

import com.jb.faces.component.UIComponent;


/**
 * Renders an image that will be draggable.
 *
 * @author $author$
 * @version $Revision$
 */
public class DraggableImageRenderer extends RendererImpl {
    public StringBuffer renderBegin(WebContext pCtx, UIComponent itemToRender) {
        Image hItem = (Image) itemToRender;
        StringBuffer htmlBuffer = new StringBuffer("");
        String value = "" + evaluate(pCtx, hItem, hItem.getValue());
        String alt = "" + evaluate(pCtx, hItem, hItem.getTitle());
        String src = hItem.getLocation();

        if (hItem.isDisabled() && (hItem.getDisableImage() != null)) {
            src = hItem.getDisableImage();
        }

        htmlBuffer.append("<img ").append(getEditScript(pCtx, hItem)).append(addTagProperty("src", src, null));

        if (!isEditable(pCtx, hItem)) {
            htmlBuffer.append(addTagProperty("clone", "true", null)).append(addTagProperty("draggable", "true", null))
                      .append(addTagProperty("onDrag_End", "jbDesigner.createComponent", null));
        }

        htmlBuffer.append(addTagProperty("sourceId", value, null)).append(addTagProperty("border", "0", null))
                  .append(addTagProperty("alt", alt, value)).append(addTagProperty("title", alt, value))
                  .append(addTagProperty("class", hItem.getStyleClass(), null)).append(addTagProperty("style",
                hItem.getStyle(pCtx), null));

        htmlBuffer.append(" >");

        return htmlBuffer;
    }

    public StringBuffer renderChildren(WebContext pCtx, UIComponent itemToRender) {
        StringBuffer stringBuffer = new StringBuffer();

        return stringBuffer;
    }

    public StringBuffer renderEnd(WebContext pCtx, UIComponent itemToRender) {
        StringBuffer stringBuffer = new StringBuffer("</img>");

        return stringBuffer;
    }
}
